/**
 * 按需注入
 * 包含通用功能：分页数据，分页方法
 */
export const pageMixin = {
  data() {
    return {
      total: 0,
      formPage: {
        page: 1,
        size: 10
      }
    }
  },
  methods: {
    handleSizeChange(val) {
      this.getTableData()
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
    }
  }
}

/**
 * 按需注入
 * 包含通用功能：表单提交, 表单重置
 */
export const formMixin = {
  methods: {
    /**
     * 表单提交
     * @param {string} formName
     */
    submitForm(formName) {
      return new Promise((resolve, reject) => {
        this.$refs[formName].validate((valid) => {
          if (valid) {
            resolve()
          } else {
            reject()
            return false
          }
        })
      })
    },
    /**
     * 表单重置
     * @param {string} formName
     */
    resetForm(formName) {
      this.$refs[formName].resetFields()
    }
  }
}
